package com.cn.mmd.model;

import java.util.ArrayList;
import java.util.List;

public class InformationExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InformationExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andInformationidIsNull() {
            addCriterion("informationId is null");
            return (Criteria) this;
        }

        public Criteria andInformationidIsNotNull() {
            addCriterion("informationId is not null");
            return (Criteria) this;
        }

        public Criteria andInformationidEqualTo(Integer value) {
            addCriterion("informationId =", value, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidNotEqualTo(Integer value) {
            addCriterion("informationId <>", value, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidGreaterThan(Integer value) {
            addCriterion("informationId >", value, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidGreaterThanOrEqualTo(Integer value) {
            addCriterion("informationId >=", value, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidLessThan(Integer value) {
            addCriterion("informationId <", value, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidLessThanOrEqualTo(Integer value) {
            addCriterion("informationId <=", value, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidIn(List<Integer> values) {
            addCriterion("informationId in", values, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidNotIn(List<Integer> values) {
            addCriterion("informationId not in", values, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidBetween(Integer value1, Integer value2) {
            addCriterion("informationId between", value1, value2, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationidNotBetween(Integer value1, Integer value2) {
            addCriterion("informationId not between", value1, value2, "informationid");
            return (Criteria) this;
        }

        public Criteria andInformationurlIsNull() {
            addCriterion("informationURL is null");
            return (Criteria) this;
        }

        public Criteria andInformationurlIsNotNull() {
            addCriterion("informationURL is not null");
            return (Criteria) this;
        }

        public Criteria andInformationurlEqualTo(String value) {
            addCriterion("informationURL =", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlNotEqualTo(String value) {
            addCriterion("informationURL <>", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlGreaterThan(String value) {
            addCriterion("informationURL >", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlGreaterThanOrEqualTo(String value) {
            addCriterion("informationURL >=", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlLessThan(String value) {
            addCriterion("informationURL <", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlLessThanOrEqualTo(String value) {
            addCriterion("informationURL <=", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlLike(String value) {
            addCriterion("informationURL like", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlNotLike(String value) {
            addCriterion("informationURL not like", value, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlIn(List<String> values) {
            addCriterion("informationURL in", values, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlNotIn(List<String> values) {
            addCriterion("informationURL not in", values, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlBetween(String value1, String value2) {
            addCriterion("informationURL between", value1, value2, "informationurl");
            return (Criteria) this;
        }

        public Criteria andInformationurlNotBetween(String value1, String value2) {
            addCriterion("informationURL not between", value1, value2, "informationurl");
            return (Criteria) this;
        }

        public Criteria andPublisheridIsNull() {
            addCriterion("publisherId is null");
            return (Criteria) this;
        }

        public Criteria andPublisheridIsNotNull() {
            addCriterion("publisherId is not null");
            return (Criteria) this;
        }

        public Criteria andPublisheridEqualTo(String value) {
            addCriterion("publisherId =", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridNotEqualTo(String value) {
            addCriterion("publisherId <>", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridGreaterThan(String value) {
            addCriterion("publisherId >", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridGreaterThanOrEqualTo(String value) {
            addCriterion("publisherId >=", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridLessThan(String value) {
            addCriterion("publisherId <", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridLessThanOrEqualTo(String value) {
            addCriterion("publisherId <=", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridLike(String value) {
            addCriterion("publisherId like", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridNotLike(String value) {
            addCriterion("publisherId not like", value, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridIn(List<String> values) {
            addCriterion("publisherId in", values, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridNotIn(List<String> values) {
            addCriterion("publisherId not in", values, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridBetween(String value1, String value2) {
            addCriterion("publisherId between", value1, value2, "publisherid");
            return (Criteria) this;
        }

        public Criteria andPublisheridNotBetween(String value1, String value2) {
            addCriterion("publisherId not between", value1, value2, "publisherid");
            return (Criteria) this;
        }

        public Criteria andDownloadsIsNull() {
            addCriterion("downloads is null");
            return (Criteria) this;
        }

        public Criteria andDownloadsIsNotNull() {
            addCriterion("downloads is not null");
            return (Criteria) this;
        }

        public Criteria andDownloadsEqualTo(Integer value) {
            addCriterion("downloads =", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsNotEqualTo(Integer value) {
            addCriterion("downloads <>", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsGreaterThan(Integer value) {
            addCriterion("downloads >", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsGreaterThanOrEqualTo(Integer value) {
            addCriterion("downloads >=", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsLessThan(Integer value) {
            addCriterion("downloads <", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsLessThanOrEqualTo(Integer value) {
            addCriterion("downloads <=", value, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsIn(List<Integer> values) {
            addCriterion("downloads in", values, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsNotIn(List<Integer> values) {
            addCriterion("downloads not in", values, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsBetween(Integer value1, Integer value2) {
            addCriterion("downloads between", value1, value2, "downloads");
            return (Criteria) this;
        }

        public Criteria andDownloadsNotBetween(Integer value1, Integer value2) {
            addCriterion("downloads not between", value1, value2, "downloads");
            return (Criteria) this;
        }

        public Criteria andReadnumberIsNull() {
            addCriterion("readNumber is null");
            return (Criteria) this;
        }

        public Criteria andReadnumberIsNotNull() {
            addCriterion("readNumber is not null");
            return (Criteria) this;
        }

        public Criteria andReadnumberEqualTo(Integer value) {
            addCriterion("readNumber =", value, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberNotEqualTo(Integer value) {
            addCriterion("readNumber <>", value, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberGreaterThan(Integer value) {
            addCriterion("readNumber >", value, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("readNumber >=", value, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberLessThan(Integer value) {
            addCriterion("readNumber <", value, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberLessThanOrEqualTo(Integer value) {
            addCriterion("readNumber <=", value, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberIn(List<Integer> values) {
            addCriterion("readNumber in", values, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberNotIn(List<Integer> values) {
            addCriterion("readNumber not in", values, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberBetween(Integer value1, Integer value2) {
            addCriterion("readNumber between", value1, value2, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReadnumberNotBetween(Integer value1, Integer value2) {
            addCriterion("readNumber not between", value1, value2, "readnumber");
            return (Criteria) this;
        }

        public Criteria andReleasetimeIsNull() {
            addCriterion("releaseTime is null");
            return (Criteria) this;
        }

        public Criteria andReleasetimeIsNotNull() {
            addCriterion("releaseTime is not null");
            return (Criteria) this;
        }

        public Criteria andReleasetimeEqualTo(String value) {
            addCriterion("releaseTime =", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeNotEqualTo(String value) {
            addCriterion("releaseTime <>", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeGreaterThan(String value) {
            addCriterion("releaseTime >", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeGreaterThanOrEqualTo(String value) {
            addCriterion("releaseTime >=", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeLessThan(String value) {
            addCriterion("releaseTime <", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeLessThanOrEqualTo(String value) {
            addCriterion("releaseTime <=", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeLike(String value) {
            addCriterion("releaseTime like", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeNotLike(String value) {
            addCriterion("releaseTime not like", value, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeIn(List<String> values) {
            addCriterion("releaseTime in", values, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeNotIn(List<String> values) {
            addCriterion("releaseTime not in", values, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeBetween(String value1, String value2) {
            addCriterion("releaseTime between", value1, value2, "releasetime");
            return (Criteria) this;
        }

        public Criteria andReleasetimeNotBetween(String value1, String value2) {
            addCriterion("releaseTime not between", value1, value2, "releasetime");
            return (Criteria) this;
        }

        public Criteria andClassnameIsNull() {
            addCriterion("className is null");
            return (Criteria) this;
        }

        public Criteria andClassnameIsNotNull() {
            addCriterion("className is not null");
            return (Criteria) this;
        }

        public Criteria andClassnameEqualTo(String value) {
            addCriterion("className =", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameNotEqualTo(String value) {
            addCriterion("className <>", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameGreaterThan(String value) {
            addCriterion("className >", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameGreaterThanOrEqualTo(String value) {
            addCriterion("className >=", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameLessThan(String value) {
            addCriterion("className <", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameLessThanOrEqualTo(String value) {
            addCriterion("className <=", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameLike(String value) {
            addCriterion("className like", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameNotLike(String value) {
            addCriterion("className not like", value, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameIn(List<String> values) {
            addCriterion("className in", values, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameNotIn(List<String> values) {
            addCriterion("className not in", values, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameBetween(String value1, String value2) {
            addCriterion("className between", value1, value2, "classname");
            return (Criteria) this;
        }

        public Criteria andClassnameNotBetween(String value1, String value2) {
            addCriterion("className not between", value1, value2, "classname");
            return (Criteria) this;
        }

        public Criteria andInformationnameIsNull() {
            addCriterion("informationName is null");
            return (Criteria) this;
        }

        public Criteria andInformationnameIsNotNull() {
            addCriterion("informationName is not null");
            return (Criteria) this;
        }

        public Criteria andInformationnameEqualTo(String value) {
            addCriterion("informationName =", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameNotEqualTo(String value) {
            addCriterion("informationName <>", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameGreaterThan(String value) {
            addCriterion("informationName >", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameGreaterThanOrEqualTo(String value) {
            addCriterion("informationName >=", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameLessThan(String value) {
            addCriterion("informationName <", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameLessThanOrEqualTo(String value) {
            addCriterion("informationName <=", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameLike(String value) {
            addCriterion("informationName like", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameNotLike(String value) {
            addCriterion("informationName not like", value, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameIn(List<String> values) {
            addCriterion("informationName in", values, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameNotIn(List<String> values) {
            addCriterion("informationName not in", values, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameBetween(String value1, String value2) {
            addCriterion("informationName between", value1, value2, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationnameNotBetween(String value1, String value2) {
            addCriterion("informationName not between", value1, value2, "informationname");
            return (Criteria) this;
        }

        public Criteria andInformationcontentIsNull() {
            addCriterion("informationContent is null");
            return (Criteria) this;
        }

        public Criteria andInformationcontentIsNotNull() {
            addCriterion("informationContent is not null");
            return (Criteria) this;
        }

        public Criteria andInformationcontentEqualTo(String value) {
            addCriterion("informationContent =", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentNotEqualTo(String value) {
            addCriterion("informationContent <>", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentGreaterThan(String value) {
            addCriterion("informationContent >", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentGreaterThanOrEqualTo(String value) {
            addCriterion("informationContent >=", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentLessThan(String value) {
            addCriterion("informationContent <", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentLessThanOrEqualTo(String value) {
            addCriterion("informationContent <=", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentLike(String value) {
            addCriterion("informationContent like", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentNotLike(String value) {
            addCriterion("informationContent not like", value, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentIn(List<String> values) {
            addCriterion("informationContent in", values, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentNotIn(List<String> values) {
            addCriterion("informationContent not in", values, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentBetween(String value1, String value2) {
            addCriterion("informationContent between", value1, value2, "informationcontent");
            return (Criteria) this;
        }

        public Criteria andInformationcontentNotBetween(String value1, String value2) {
            addCriterion("informationContent not between", value1, value2, "informationcontent");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}